#include<bits/stdc++.h>
using namespace std;
int n;
int fa[1000005];
int s[1000005],tot;
int vis[1000005];
int head[1000005],to[2000005],nxt[2000005],Tot;
void add(int u,int v){
	to[++Tot]=v;
	nxt[Tot]=head[u];
	head[u]=Tot;
}
void dfs(int x){
	for(int i=head[x];i;i=nxt[i]){
		int y=to[i];
		if(y==fa[x])continue;
		fa[y]=x;
		dfs(y);
	} 
}
void w(int x){
	if(vis[x])return;
	s[++tot]=x;
	while(!vis[fa[x]]){
		x=fa[x];
		s[++tot]=x;
	}
	while(tot>0){
		vis[s[tot]]=1;
		printf("%d ",s[tot]);
		tot--;
	}
	return;
}
signed main(){
	freopen("choice.in","r",stdin);
	freopen("choice.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<n;i++){
		int u,v;
		scanf("%d %d",&u,&v);
		add(u,v);
		add(v,u);
	}
	fa[1]=0;
	dfs(1);
	vis[0]=1;
	for(int i=1;i<=n;i++)w(i);
	return 0;
}
